package com.example.common.util.base642url;

import cn.hutool.core.codec.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.RandomUtil;
import com.example.crud.sys.mapper.OrmMapper;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.imageio.ImageIO;
import lombok.Cleanup;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import static cn.hutool.core.util.StrUtil.isBlank;

/**
 * 数据库中base图片转本地图床url工具类
 *
 * @author zjarlin
 * @since 2023/02/10
 */
@Component
public class ColumnTypeTransfer {

    /** base64转成的图片保存路径,子文件夹命名规则是当天日期 */
    private static final String savePath = "/Users/zjarlin/Desktop/" + LocalDate.now();

    @Autowired
    JdbcTemplate jdbcTemplate;
    // @Autowired
    //  NamedParameterJdbcTemplate  jdbcTemplate;

    // @Autowired
    // OrmMapper ormMapper;

    @Autowired
    OrmMapper ormMapper;

    public static void main(String[] args) {
        String s3 = "";
        String s = "joacisjcoia";
        String ss = "R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7";
        String img = "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";
        String img2 = " ";
        boolean b = checkForEncode(s3);
        String s1 = base64ToUrlWithSavePhoto(ss);
        base64ToUrlWithSavePhoto(img);
        base64ToUrlWithSavePhoto(img2);

        System.out.println(s1);

    }

    public static boolean checkForEncode(String string) {
        string = string.replaceFirst("data:(.+?);base64,", "");

        String pattern = "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$";
        String base64ImageRegex = "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$";

        // "[\\/]?([\\da-zA-Z]+[\\/+]+)*[\\da-zA-Z]+([+=]{1,2}|[\\/])?"
        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(string);
        boolean b = m.find();
        return b
            // && isValidImage(string)
            ;
    }

    /**
     * 入参base64字符串,将其保存到savePath目录下,并返回文件保存的路径
     *
     * @param base64Str 入参
     * @return {@link String }
     * @author zjarlin
     * @since 2023/02/10
     */
    @SneakyThrows
    public static String base64ToUrlWithSavePhoto(String base64Str) {
        if (isBlank(base64Str)) {
            return "";
        }
        //前缀做处理
        base64Str = base64Str.replaceFirst("data:(.+?);base64,", "");
        // boolean isNotBase64 = !cn.hutool.core.codec.Base64.isBase64(base64Str);

        boolean isNotBase64 = !checkForEncode(base64Str);
        //如果不是base64格式就不转换,还按照原来的返回
        if (isNotBase64) {return base64Str;}
        // DateTimeFormatter dfDateTime = DateTimeFormatter.ofPattern("yyyy_MM_dd_HH_mm_ss_SSS_");
        DateTimeFormatter dfDateTime = DateTimeFormatter.ofPattern("HH_mm_ss_SSS_");
        String format = dfDateTime.format(LocalDateTime.now());
        String path = savePath + File.separator + format + RandomUtil.randomString(2) + ".png";
        File touch = FileUtil.touch(path);

        @Cleanup FileOutputStream fileOutputStream = new FileOutputStream(touch);
        byte[] bytes = Base64.decode(base64Str);
        // byte[] bytes = java.util.Base64.getMimeDecoder().decode(base64Str);
        fileOutputStream.write(bytes);

        // BufferedImage read = ImageIO.read(touch);
        // boolean isNotImg = read == null;
        //如果生成的不是图片,还按原字符串返回
        // if (isNotImg) {
        //     boolean del = FileUtil.del(touch);
        //     return base64Str;
        // }

        return path;
    }

    static boolean isValid(String base64Image) {
        try {
            byte[] imageBytes = Base64.decode(base64Image);
            BufferedImage image = ImageIO.read(new ByteArrayInputStream(imageBytes));
            return image != null && image.getHeight() > 0 && image.getWidth() > 0;
        } catch (IOException e) {
            return false;
        }
    }

    /**
     * 会误判有的base64是图片也会false
     *
     * @param base64Image base64形象 入参
     * @return boolean
     * @author zjarlin
     * @since 2023/02/10
     */
    @Deprecated
    static boolean isValidImage(String base64Image) {
        byte[] imageBytes = Base64.decode(base64Image);
        try (ByteArrayInputStream inputStream = new ByteArrayInputStream(imageBytes)) {
            BufferedImage image = ImageIO.read(inputStream);
            return image != null;
        } catch (IOException e) {
            return false;
        }
    }

    /**
     * 更新表某列格式
     *
     * @param tableName 表名
     * @param column    要变更格式的列
     * @author zjarlin
     * @since 2023/02/10
     */
    @SneakyThrows(Exception.class)
    @Transactional(rollbackFor = Exception.class)
    public void columnMappingByJdbcTemplate(String tableName, String column, Function<String, String> transFun) {
        // 创建临时表
        // jdbcTemplate.execute("CREATE TABLE temp AS SELECT * FROM " + tableName);

// 添加新列
        //todo判断新列是否存在
        // ResultSet columns = jdbcTemplate.getDataSource().getConnection().getMetaData().getColumns(null, null, tableName, yCol);
        // boolean next = columns.next();
        // jdbcTemplate.execute("ALTER TABLE " + tableName + " ADD COLUMN " + yCol + " VARCHAR(255)");
        List<Map<String, Object>> list = jdbcTemplate.queryForList("SELECT id," + column + " FROM " + tableName);

        for (Map<String, Object> map : list) {
            String idValue = (String) map.get("id");
            //转换前的值
            String srcValue = (String) map.get(column);
            //转换后的值
            String tarValue = transFun.apply(srcValue);
            jdbcTemplate.update("UPDATE " + tableName + " SET " + column + "='" + tarValue + "'" + " WHERE id = '" + idValue + "'");

        }
    }

    /**
     * 更新表某列格式
     *
     * @param tableName 表名
     * @param column    要变更格式的列
     * @author zjarlin
     * @since 2023/02/10
     */
    @SneakyThrows(Exception.class)
    @Transactional(rollbackFor = Exception.class)
    public void columnMappingByOrmMapper(String tableName, String column, Function<String, String> transFun) {

        List<Map<String, Object>> list = ormMapper.findAnyColumnOfAnyTable(tableName, column);

        for (Map<String, Object> map : list) {
            String idValue = (String) map.get("id");
            //转换前的值
            String srcValue = (String) map.get(column);
            //转换后的值
            String tarValue = transFun.apply(srcValue);

            ormMapper.setColumnValueById(tableName, column, tarValue, idValue);
        }
    }

}
